﻿using System;

namespace Demo0524
{
    class Program
    {
        static void Main(string[] args)
        {
            Vehicle();
        }
        //1、电脑的
        static void USBA() 
        {
            UDisk u1 = new UDisk("金士顿");
            u1.Read();
            u1.Write();

            MobileHardDisk mo1 = new MobileHardDisk("西部");
            mo1.Read();
            mo1.Write();

            Computer com = new Computer("联想");
            com.Star();
            com.Usb1 = u1;
            com.Usb2 = mo1;

            com.ReadData();
            com.WriteData();

            com.End();
        }
        //1、音乐老师（既是老师，又是运动员），需要有一种结构，音乐老师继承老师，同时继承运动员。
        //程序员（既是员工，又是作家），需要有一种结构，程序员继承员工，同时继承作家。
        static void Musician() 
        {
            MusicTeacher mus = new MusicTeacher();
            mus.Athlete();
            mus.Teacher();
            Programmer pro = new Programmer();
            pro.Athlete();
            pro.Teacher();
        }
        //2、猫、狗、鸭、猴，（吃、游泳、爬树）
        static void Animal2()
        {
            Cat cat = new Cat();
            Dog dog = new Dog();
            Duck duck = new Duck();
            Monkey mon = new Monkey();
            TestClimb(cat);
            TestClimb(mon);
            TestSwin(dog);
            TestSwin(duck);
        }
        static void TestSwin(ISwim swin)
        {
            swin.Swim();
        }
        static void TestClimb(IClimb climb)
        {
            climb.Climb();
        }
        //3、蝙蝠战车的例子
        static void Bat() { }
//        4、子类：飞机、小鸟、超人
//父类：交通工具、动物
//接口
        static void Vehicle() 
        {
            Birdie bir = new Birdie();
            bir.Anima();
            bir.Fly();
            Superman sup = new Superman();
            sup.Anima();
            sup.Fly();
            sup.Run();
            Aircraft air = new Aircraft();
            air.Vehicl();
            air.Fly();
        }

    }
}
